home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 October: Windmill on DISC / ADC Developer CD (1993-10) (''Windmill On DISC'')_iso / Dev.CD Oct 93.iso / System Software / U.S. System Software / System 7 Pro™ Beta 11 / Development Tools / Sample Code / Standard Mail / CollaboDraw (w⁄DigiSign) / base.window.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-11  |  6.2 KB  |  317 lines  |  [TEXT/MPS ]

  1. /*-------------------------------------------------------------------------------------
  2.  *
  3.  * Simple Sample AOCE Application Framework
  4.  *
  5.  * ©1991-1993 Apple Computer
  6.  *
  7.  -------------------------------------------------------------------------------------*/
  8. /*
  9.  * base.window.c -- base class for windows
  10.  *
  11.  * change history:
  12.  *
  13.  * SJF        04/21/93        1.0b2        update to b2
  14.  * SJF        03/01/93        1.0b1        added digital signatures
  15.  * SJF        02/09/93        1.0b1        update to b1
  16.  * SJF        10/13/92        1.0d4        update to a11
  17.  * SJF        09/09/92        1.0d3        update to a9
  18.  * SJF        05/07/92        1.0d2        update to a6
  19.  * SJF        11/06/91        1.0d1        initial coding
  20.  *
  21.  */
  22.  
  23. #include "const.h"
  24. #include "strconst.h"
  25. #include "mytypes.h"
  26. #include "globals.h"
  27. #include "utils.h"
  28. #include "windowstuff.h"
  29.  
  30. #include "base.window.h"
  31.  
  32.  
  33. /* instantiate a new base window */
  34.  
  35. WindowPtr BaseMakeWindow(Rect *wRect,StringPtr title,Boolean visible,short wdefProc,Boolean goAwayFlag)
  36. {
  37.     WInfoHndl infoHndl;
  38.     WInfoPtr infoPtr;
  39.     WindowPtr theWindow;
  40.     Str255 defaultTitle;
  41.     
  42.  
  43.     if (title==nil) {
  44.         GetResString(defaultTitle,kDefaultTitleID,kDefaultTitle);
  45.         title = defaultTitle;
  46.     }
  47.     
  48.     infoHndl = NewHandleChk(sizeof(WInfo));
  49.     if (MemError()!=noErr)
  50.         return nil;
  51.     
  52.     MoveHHi((Handle) infoHndl);
  53.     HLock((Handle) infoHndl);
  54.     infoPtr = *infoHndl;
  55.     
  56.     infoPtr->m_idle = BaseIdleWindow;
  57.     infoPtr->m_fixCursor = BaseFixCursorWindow;
  58.     infoPtr->m_activate = BaseActivateWindow;
  59.     infoPtr->m_deactivate = BaseDeactivateWindow;
  60.     infoPtr->m_update = BaseUpdateWindow;
  61.     infoPtr->m_key = BaseKeyWindow;
  62.     infoPtr->m_resize = BaseResizeWindow;
  63.     infoPtr->m_click = BaseClickWindow;
  64.     infoPtr->m_destroy = BaseDestroyWindow;
  65.     infoPtr->m_undo = BaseUndoWindow;
  66.     infoPtr->m_cut = BaseCutWindow;
  67.     infoPtr->m_copy = BaseCopyWindow;
  68.     infoPtr->m_paste = BasePasteWindow;
  69.     infoPtr->m_clear = BaseClearWindow;
  70.     infoPtr->m_print = BasePrintWindow;
  71.     infoPtr->m_pageSetup = BasePageSetupWindow;
  72.     infoPtr->m_save = BaseSaveWindow;
  73.     infoPtr->m_load = BaseLoadWindow;
  74.     infoPtr->m_event = BaseEventWindow;
  75.     infoPtr->m_ctrlHit = BaseHitControlWindow;
  76.     infoPtr->m_selectAll = BaseSelectAllWindow;
  77.     infoPtr->m_group = BaseGroupWindow;
  78.     infoPtr->m_unGroup = BaseUnGroupWindow;
  79.     
  80.     if (HasColorQD())
  81.         theWindow = NewCWindow(nil,wRect,title,visible,wdefProc,(WindowPtr)-1L,goAwayFlag,(unsigned long)infoHndl);
  82.  
  83.     else
  84.         theWindow = NewWindow(nil,wRect,title,visible,wdefProc,(WindowPtr)-1L,goAwayFlag,(unsigned long)infoHndl);
  85.     
  86.     SetWindowKind(theWindow,kBaseWindow);
  87.     
  88.     pstrcpy(infoPtr->fileSpec.name,defaultTitle);
  89.     infoPtr->refCount = gNextWindowToMake++;
  90.     infoPtr->window = theWindow;
  91.     infoPtr->saved = false;
  92.     infoPtr->changed = false;
  93.     infoPtr->fRefNum = 0;
  94.     infoPtr->resRefNum = 0;
  95.     infoPtr->topIndent = 0;
  96.     infoPtr->leftIndent = 0;
  97.     
  98.     infoPtr->printRecord = NewHandleChk(sizeof(TPrint));
  99.     if (MemError()!=noErr)
  100.         return nil;
  101.         
  102.     PrOpen();
  103.     PrintDefault(infoPtr->printRecord);
  104.     if (PrError()!=noErr)
  105.         DoError(PrError());
  106.     PrClose();
  107.     
  108.     return theWindow;
  109. }
  110.  
  111.  
  112. void *BaseDestroyWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  113. {    
  114.     #pragma unused (window,data)
  115.     
  116.     DisposHandleChk(infoPtr->printRecord);
  117.     
  118.     return nil;
  119. }
  120.  
  121.  
  122. void *BaseIdleWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  123. {
  124.     #pragma unused (window,infoPtr,data)
  125.     
  126.     return nil;
  127. }
  128.  
  129.  
  130. void *BaseFixCursorWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  131. {
  132.     #pragma unused (window,infoPtr,data)
  133.     
  134.     return nil;
  135. }
  136.  
  137.  
  138. void *BaseActivateWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  139. {
  140.     #pragma unused (infoPtr,data)
  141.     
  142.     MyDrawGrowIcon(window);
  143.     return nil;
  144. }
  145.  
  146.  
  147. void *BaseDeactivateWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  148. {
  149.     #pragma unused (infoPtr,data)
  150.     
  151.     MyDrawGrowIcon(window);
  152.     SetDefaultMenus();
  153.     gMenusDirty = true;
  154.     return nil;
  155. }
  156.  
  157.  
  158. void *BaseUpdateWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  159. {
  160.     #pragma unused (infoPtr,data)
  161.     
  162.     MyDrawGrowIcon(window);
  163.     return nil;
  164. }
  165.  
  166.  
  167. void *BaseResizeWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  168. {    
  169.     #pragma unused (infoPtr,data)
  170.     Rect gbRect;
  171.     
  172.     gbRect = window->portRect;
  173.     gbRect.top = gbRect.bottom - kGrowBoxWidth;
  174.     gbRect.left = gbRect.right - kGrowBoxWidth;
  175.     EraseRect(&gbRect);
  176.  
  177.     return nil;
  178. }
  179.  
  180.  
  181. void *BaseKeyWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  182. {
  183.     #pragma unused (window,infoPtr,data)
  184.     
  185.     return nil;
  186. }
  187.  
  188.  
  189. void *BaseClickWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  190. {
  191.     #pragma unused (window,data)
  192.     
  193.     infoPtr->changed = true;
  194.     return nil;
  195. }
  196.  
  197.  
  198. void *BaseUndoWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  199. {
  200.     #pragma unused (window,infoPtr,data)
  201.     
  202.     return nil;
  203. }
  204.  
  205.  
  206. void *BaseCutWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  207. {
  208.     #pragma unused (window,infoPtr,data)
  209.     
  210.     return nil;
  211. }
  212.  
  213.  
  214. void *BaseCopyWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  215. {
  216.     #pragma unused (window,infoPtr,data)
  217.     
  218.     return nil;
  219. }
  220.  
  221.  
  222. void *BasePasteWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  223. {
  224.     #pragma unused (window,infoPtr,data)
  225.     
  226.     return nil;
  227. }
  228.  
  229.  
  230. void *BaseClearWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  231. {
  232.     #pragma unused (window,infoPtr,data)
  233.     
  234.     return nil;
  235. }
  236.  
  237.  
  238. void *BaseSelectAllWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  239. {
  240.     #pragma unused (window,infoPtr,data)
  241.     
  242.     return nil;
  243. }
  244.  
  245.  
  246. void *BaseGroupWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  247. {
  248.     #pragma unused (window,infoPtr,data)
  249.     
  250.     return nil;
  251. }
  252.  
  253.  
  254. void *BaseUnGroupWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  255. {
  256.     #pragma unused (window,infoPtr,data)
  257.     
  258.     return nil;
  259. }
  260.  
  261.  
  262. void *BasePrintWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  263. {
  264.     #pragma unused (window,infoPtr,data)
  265.     
  266.     return nil;
  267. }
  268.  
  269.  
  270. void *BasePageSetupWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  271. {
  272.     #pragma unused (window,data)
  273.     
  274.     infoPtr->changed = true;
  275.     
  276.     return nil;
  277. }
  278.  
  279.  
  280. void *BaseSaveWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  281. {
  282.     #pragma unused (window,data)
  283.     
  284.     infoPtr->saved = true;
  285.     infoPtr->changed = false;
  286.  
  287.     return nil;
  288. }
  289.  
  290.  
  291. void *BaseLoadWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  292. {
  293.     #pragma unused (window,data)
  294.     
  295.     infoPtr->saved = true;
  296.     infoPtr->changed = false;
  297.  
  298.     return nil;
  299. }
  300.  
  301.  
  302. void *BaseEventWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  303. {
  304.     #pragma unused (window,infoPtr,data)
  305.     
  306.     return nil;
  307. }
  308.  
  309.  
  310. void *BaseHitControlWindow(WindowPtr window,WInfoPtr infoPtr,void *data)
  311. {
  312.     #pragma unused (window,infoPtr,data)
  313.     
  314.     return nil;
  315. }
  316.  
  317.